package com.ak.demo.utils;

import com.ak.demo.entity.JsonRootBean;
import com.ak.demo.entity.Rows;
import com.ak.demo.entity.Students;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

@Slf4j
public class ResponseUtils {
    /**
     * 用来登录正方系统的，然后实施 打卡的
     * @param username 用户名
     * @param password 用户密码
     * @return
     */
    public  static  String connect(String username,String password) throws Exception{
        // 登陆
        Connection.Response login = HttpConnectUtils.login("http://authserver.jit.edu.cn/authserver/login", username, password);
        // 新增页面 url
        String index_url="http://ehallapp.jit.edu.cn/emapflow/sys/lwReportEpidemic/index.do";
        Connection.Response kk = HttpConnectUtils.response(index_url, login);
        // 获取所有数据的 url
        String url="http://ehallapp.jit.edu.cn/emapflow/sys/lwReportEpidemic/modules/newdailyReport/getMyNewDailyReportDatas.do";
        Connection.Response add = HttpConnectUtils.response(url, kk);
        Gson gson=new Gson();
        Students students=gson.fromJson(add.body(),Students.class);
        // 获取所有打卡信息
        List<Rows> rows=students.getDatas().getGetMyNewDailyReportDatas().getRows();

        // 获取健康信息打卡的所有数据
        // http://ehallapp.jit.edu.cn/emapflow/sys/lwReportEpidemic/modules/newdailyReport/getMyNewDailyReportDatas.do
        // 请求网址 http://ehallapp.jit.edu.cn/emapflow/sys/lwReportEpidemic/modules/newdailyReport/T_REPORT_EPIDEMIC_CHECKIN_SAVE.do
        Rows rows1=rows.get(0);
        JsonRootBean user=HttpConnectUtils.copyAttr(rows1,new JsonRootBean());
        // CZRQ: 2021-01-16 01:19:05
        // 打卡上次时间
        user.setCZRQ(rows1.getCREATED_AT());
        // 打卡时间
        user.setNEED_CHECKIN_DATE(DateUtils.getsdfyyyy_MM_dd());
        // 打卡具体时间
        user.setCREATED_AT(DateUtils.getSdfyyyy_MM_ddHHmm());
        // 设置年龄
        user.setDZ_NL(rows1.getDZ_NL());
        // 健康码为绿色
        user.setDZ_NGLJKM("1");
        user.setDZ_NGLJKM_DISPLAY("绿色");
        user.setDZ_SFFX_DISPLAY("否");
        user.setDZ_SFFX("NO");
        user.setDZ_SFYC_DISPLAY(rows1.getDZ_SFYC_DISPLAY());
        user.setDZ_SFYC("NO");
        user.setDZ_SFQGNJYWCS_DISPLAY("否");
        user.setDZ_SFQGNJYWCS("NO");
        user.setDZ_CRSFFX_DISPLAY("是");
        user.setDZ_CRSFFX("YES");
        user.setDZ_SFZNJ_DISPLAY("否");
        user.setDZ_SFZNJ("NO");
        // 把数据解析成 json 字符串
        Gson gson1=new Gson();
        String data=gson1.toJson(user);
        String add_url="http://ehallapp.jit.edu.cn/emapflow/sys/lwReportEpidemic/modules/newdailyReport/T_REPORT_EPIDEMIC_CHECKIN_SAVE.do";
        Connection.Response response = HttpConnectUtils.responseJsonParam(add_url, kk, data);
        log.info(response.body());
        if(response.statusCode()==200){
           log.info("注册成功");
        }
        return response.body();
    }

    /**
     * 然后解析所有csdn 该用户的人名
     * @param username 传过来的人名，
     * @throws MalformedURLException
     * @throws IOException
     */
    public static List<String> parse(String username) {

        List<String> parselist=new ArrayList<>();
        for(int i=1;i<=1000;i++) {
            String url="https://blog.csdn.net/"+username+"/article/list/"+i;
            try {
                Document doc = Jsoup.parse(new URL(url),15000);
                Elements temp = doc.getElementsByClass("article-list");
                if(temp.size()>0){
                     Elements elements=temp.get(0).getElementsByTag("a");
                    if(elements.size()==0) {
                        break;
                    }
                    for(Element e : elements) {
                        parselist.add(e.attr("href"));
                    }
                }else {
                    break;
                }
            } catch (Exception e) {
                e.printStackTrace();
                log.info("对不起，用户名字输入错误");
                break;
            }
        }
//        String url="https://blog.csdn.net/"+username+"/article/list/1";
//        try {
//            Document doc = Jsoup.parse(new URL(url),20000);
//            String read = doc.getElementById("asideProfile").getElementsByClass("text-center").get(3).getElementsByTag("dt").get(0).getElementsByTag("span").get(0).text();
//
//        } catch (Exception e) {
//
//        }
        return parselist;
    }

}
